package cn.doitedu.dfdemo

import cn.doitedu.util.SparkUtil
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.types.{DataTypes, StructType}

/**
 * @Date 22.4.9
 * @Created by HANGGE
 * @Description
 *             这个原始文件中没有数据头
 */
object C01_MakeDF_Csv02 {
  def main(args: Array[String]): Unit = {
    val session = SparkUtil.getSession
    // 根据结构化数据的结构  自定义  Schema
    val structType = new StructType()
      .add("tid" , DataTypes.LongType)
      .add("tname" , DataTypes.StringType)
      .add("tage" , DataTypes.IntegerType)
      .add("tgender",DataTypes.StringType)
      .add("tcity" , DataTypes.StringType)
    // 加载数据的时候指定schema信息
    val df = session.read.schema(structType).csv("data/csv/Teacher.csv")

    /**
     * root
     * |-- tid: long (nullable = true)
     * |-- tname: string (nullable = true)
     * |-- tage: integer (nullable = true)
     * |-- tgender: string (nullable = true)
     * |-- tcity: string (nullable = true)
     *
     * +---+------+----+-------+-----+
     * |tid| tname|tage|tgender|tcity|
     * +---+------+----+-------+-----+
     * |  1|胡老师|  23|      M|   SH|
     * |  2|刘老师|  43|      M|   BJ|
     * |  3|马老师|  27|      F|   SH|
     * +---+------+----+-------+-----+
     */

    // 打印默认的结构和数据
    df.printSchema()
    df.show(10)

  }

}
